OpenFlow is a new network switching model that supports network innovation research. An open flow table of the model allows a user to control a network processing behavior. A basic idea of an OpenFlow network is to implement separation of a data forwarding layer from a control layer, and divides the entire OpenFlow network into a data channel and a control channel. An OpenFlow switch is responsible for forwarding at the data layer, and an OpenFlow controller implements a function of the control layer, such as determining a forwarding rule. A control protocol of the OpenFlow network is the OpenFlow protocol.
In an existing OpenFlow network, after receiving a data packet, the switch checks on a local flow table whether the data packet matches an existing forwarding rule. If the data packet does not match an existing forwarding rule, the data packet is used as a to-be-reported data flow and is reported to the controller using a Packet_in message (report message/packet in message). The controller determines a forwarding rule for the data packet that does not match an existing forwarding rule (for ease of description, a data packet that is in the switch and does not match a forwarding rule is hereinafter referred to as a to-be-reported data flow). If a large quantity of to-be-reported data flows exist in the network, a large quantity of control channel bandwidth resources are consumed, and control channel efficiency is affected.